/** 二个字节的整数
 * @smallint 16bits / 2^15 >> ±32767（五） >> 三十二万多
 * @jsRuntime 8byte >> 64bits/53bits / 2^52 >> ±9007199254740991（十三） >> 九千万亿多
 */
export type SMALLINT_PG = number;

/** 四个字节的整数
 * @integer 32bits / 2^31 >> ±2147483647（十） >> 二十一亿四千七百万多
 * @jsRuntime 8byte >> 64bits/53bits / 2^52 >> ±9007199254740991（十三） >> 九千万亿多
 */
export type INTEGER_PG = number;

/** 八个字节的整数
 * @bigint 64bits / 2^63 >> ±9223372036854775807（十九） >> 九百二十二*亿亿!
 * @jsRuntime 8byte >> 64bits/53bits / 2^52 >> ±9007199254740991（十三） >> 九千万亿多
 */
export type BIGINT_PG = string;

/** Pg中没有长度限制的字符串 @extra Js中字符串没有长度限制 */
export type VARCHAR_PG = string;

/** Pg中最大长度是50的字符串 @mongodb ObjectId 是一个由 24个字符 组成的字符串 */
export type VARCHAR50_PG = string;

/** Pg中最大长度是255的字符串 */
export type VARCHAR255_PG = string;

export type ExtIdTuple = {
  id: INTEGER_PG;
  isDisabled: boolean;
  timeCreate: BIGINT_PG;
  timeUpdate: BIGINT_PG;
};

export type ExtBigIdTuple = {
  id: BIGINT_PG;
  isDisabled: boolean;
  timeCreate: BIGINT_PG;
  timeUpdate: BIGINT_PG;
};

export type ExtUUidTuple = {
  uuid32: VARCHAR50_PG;
  isDisabled: boolean;
  timeCreate: BIGINT_PG;
  timeUpdate: BIGINT_PG;
};
